Computer generated animations and/or video games may be generated from three-dimensional models of virtual spaces. The virtual space may be used to tell a story using one or more virtual objects that may be placed within the virtual space. The virtual objects may represent characters, topographical elements, and/or other objects within the virtual space. Virtual objects may be animated in accordance with a storyline, plot, action sequence, character dialogue, and/or other video content of the animated video. To generate an animation, two-dimensional images may be generated from the three-dimensional model at various points in time. The images may be compiled together to comprise frames of the video.
High quality real-time presentation of three-dimensional content generated with rasterization pipelines may exhibit temporal and spatial coherence. A classic problem in computer graphics is that rasterization pipelines may recompute each frame image from scratch, incurring a lot of repeated processing involving heavy geometry processing and/or shading stages. Although graphics cards continue to evolve their computational power, the increasing demand of more complex and sophisticated shading computations create a compromise between available computational resources and achievable spatial and temporal resolution. As a consequence, spatial and temporal resolution are often the first candidates to bow to the performance constraints.
The two main sources of aliasing in rasterization are spatial (e.g. visibility and shading) and temporal (e.g. flickering and specular aliasing). Supersampling is an adopted solution based on computing higher resolution images and downsampling them to obtain the final filtered result. In rasterization, supersampling usually refers to the spatial and temporal dimensions. On the spatial side, multisampling may be combined with decoupled shading architectures that separate visibility samples from shading in order to minimize rendering costs. Temporal coherence may be exploited by reusing samples across multiple frames, resulting in reduced rendering costs. Amortizing samples across time does not only allow to incorporate computationally more intensive shading effects, but also offers opportunities for extending high-end graphics applications to lower-spec consumer-level hardware. In order to avoid excessive memory requirements, the idea of using exponential history buffers has been explored, even with subpixel accuracy. However, it is still an open research topic how to infer future shading values from pixel history or whether to invalidate history due to occlusion and disocclusion events. These problems become even more challenging when only a few number of samples per pixel (spp) are available (e.g. 1 spp per-frame).